package com.nantong.admin.domain.model.response.salesorder;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 销售统计视图对象
 *
 * @author nantong
 */
@Data
public class SalesStatisticsVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 总营业额
     */
    private BigDecimal totalSalesAmount;

    /**
     * 成交客户数
     */
    private Integer completedCustomerCount;

    /**
     * 成交订单数（完结状态）
     */
    private Integer completedOrderCount;

    /**
     * 退款订单数
     */
    private Integer refundedOrderCount;

    /**
     * 总订单数
     */
    private Integer totalOrderCount;

    /**
     * 成交率（百分比，保留2位小数）
     */
    private BigDecimal successRate;

    /**
     * 按时间统计的数据（用于图表展示）
     */
    private List<TimeSeriesData> timeSeriesData;

    /**
     * 按销售人员统计的数据（用于图表展示）
     */
    private List<SalespersonData> salespersonData;

    /**
     * 时间序列数据
     */
    @Data
    public static class TimeSeriesData implements Serializable {
        private static final long serialVersionUID = 1L;
        /**
         * 时间标签（如：2024-01、2024-01-01等）
         */
        private String timeLabel;
        /**
         * 营业额
         */
        private BigDecimal salesAmount;
        /**
         * 订单数
         */
        private Integer orderCount;
    }

    /**
     * 销售人员数据
     */
    @Data
    public static class SalespersonData implements Serializable {
        private static final long serialVersionUID = 1L;
        /**
         * 销售人员ID
         */
        private Long salespersonId;
        /**
         * 销售人员姓名
         */
        private String salespersonName;
        /**
         * 营业额
         */
        private BigDecimal salesAmount;
        /**
         * 订单数
         */
        private Integer orderCount;
    }
}

